package com.ss.service;

import com.ss.bean.ZhCustomer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ss.vo.CustomerMessage;

import java.util.List;

/**
 * <p>
 * 业主信息表 服务类
 * </p>
 *
 * @author lian
 * @since 2022-09-16
 */
public interface ZhCustomerService extends IService<ZhCustomer> {

    /**
     * 新增业主信息
     *
     * @param zhCustomer 前端传递的新业主信息
     * @return 业主信息是否新增成功
     */
    Integer insertCustomer(ZhCustomer zhCustomer);

    /**
     * 查询全部业主信息
     *
     * @return 全部业主信息
     */
    List<ZhCustomer> selectAllCustomer();

    /**
     * 根据用户选择的列和对应的值来查询业主信息
     *
     * @param column 对应查询的列
     * @param value  对应列的值
     * @return 业主信息
     */
    List<ZhCustomer> selectCustomerByColumnAndValue(String column, String value);

    /**
     * 根据业主类型来查询业主信息
     *
     * @param customerType 业主类型
     * @return 查询的业主信息
     */
    List<ZhCustomer> selectByCustomerByCustomerType(String customerType);

    /**
     * 统一查询入口（优化查询功能）
     * 通过用户传递的参数进行对应的查询
     * @param customerMessage 用户传递的参数
     * @return 查询结果：业主信息
     */
    List<ZhCustomer> selectCustomer(CustomerMessage customerMessage);

    /**
     * 根据前端传递的业主编码信息来修改业主状态
     *
     * @param customerCodes：此参数为业主编码，如果出现多个业主编码，会通过"|"进行分割
     * @param status：状态：1启用 0禁用
     * @return 修改业主信息的状态结果
     */
    Integer UpdateCustomerStatusByCustomerCode(String customerCodes, String status);
}
